{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 91,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import cv2, os\n",
    "import matplotlib.pyplot as plt\n",
    "from math import cos, atan, radians, degrees, tan, sin"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "outputs": [],
   "source": [
    "fp_root = r'D:\\Downloads\\check'\n",
    "fp_img_before = os.path.join(fp_root, 'before', '0.jpg')\n",
    "fp_img_after = os.path.join(fp_root, 'after', '0.jpg')\n",
    "fp_img_points_before = fp_img_before.replace('0.jpg', 'img_points.txt')\n",
    "fp_object_points_before = fp_img_before.replace('0.jpg', 'object_points.txt')\n",
    "fp_img_points_after = fp_img_points_before.replace('before', 'after')\n",
    "fp_object_points_after = fp_object_points_before.replace('before', 'after')\n",
    "fp_ins = os.path.join(fp_root, 'calibrate', 'intrinsic.txt')\n",
    "fp_dis = os.path.join(fp_root, 'calibrate', 'distcoef.txt')\n",
    "\n",
    "img_before = cv2.imread(fp_img_before)\n",
    "img_after = cv2.imread(fp_img_after)\n",
    "intrinsic = np.loadtxt(fp_ins)\n",
    "distcoefs = np.loadtxt(fp_dis)\n",
    "img_points_before = np.loadtxt(fp_img_points_before)\n",
    "img_points_after = np.loadtxt(fp_img_points_after)\n",
    "object_points_before = np.loadtxt(fp_object_points_before)\n",
    "object_points_after = np.loadtxt(fp_object_points_after)\n",
    "\n",
    "object_points_before = np.array([x.tolist() + [0.0] for x in object_points_before])\n",
    "object_points_after = np.array([x.tolist() + [0.0] for x in object_points_after])\n",
    "\n",
    "alpha, delta_h, h = 43.4, 300, 1005"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "outputs": [],
   "source": [
    "_, rvec, tvec = cv2.solvePnP(object_points_before, img_points_before, intrinsic, distcoefs)\n",
    "rmat = cv2.Rodrigues(rvec)[0]\n",
    "\n",
    "zcs = []\n",
    "for i in range(object_points_before.shape[0]):\n",
    "    zcs.append((intrinsic @ (rmat @ object_points_before[i, :].reshape((-1, 1)) + tvec))[2, 0])"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 94,
   "outputs": [
    {
     "data": {
      "text/plain": "<Figure size 432x288 with 1 Axes>",
      "image/png": "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\n"
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "loss = []\n",
    "img_points_before_cal = np.array([x.tolist() + [1.0] for x in img_points_before])\n",
    "for i in range(img_points_before.shape[0]):\n",
    "    loss.append(intrinsic @ (rmat @ object_points_before[i, :].reshape((-1, 1)) + tvec) / zcs[i] -\n",
    "                img_points_before_cal[i, :].reshape((-1, 1)))\n",
    "loss = np.squeeze(np.array(loss))\n",
    "plt.figure()\n",
    "for i in range(loss.shape[1]):\n",
    "    plt.plot(loss[:, i])\n",
    "plt.legend(['x', 'y', 'z'])\n",
    "plt.xlabel('No.Number')\n",
    "plt.ylabel('Rebuild loss(pixel)')\n",
    "plt.grid(True)\n",
    "plt.show()"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 95,
   "outputs": [
    {
     "data": {
      "text/plain": "<Figure size 432x288 with 1 Axes>",
      "image/png": "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\n"
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "img_points_after_cal = np.array([x.tolist() + [1.0] for x in img_points_after])\n",
    "loss = []\n",
    "for i in range(len(zcs)):\n",
    "    # 两种情况下进行水面升高后的zcs计算，计算公式参考PDF\n",
    "    if zcs[i] > h / cos(radians(alpha)):\n",
    "        beta = degrees(atan(((zcs[i] - h / cos(radians(alpha)))\n",
    "                             / sin(radians(alpha)) + h * tan(radians(alpha))) / (h - delta_h))) - alpha\n",
    "        zc = ((zcs[i] - h / cos(radians(alpha))) / sin(radians(alpha)) + h * tan(radians(alpha))) \\\n",
    "              / sin(radians(alpha + beta)) * cos(radians(beta))\n",
    "    else:\n",
    "        beta = degrees(atan((h * tan(radians(alpha)) - (h / cos(radians(alpha)) - zcs[i])\n",
    "                             / sin(radians(alpha))) / (h - delta_h)))\n",
    "        zc = (h - delta_h) / cos(radians(beta)) * cos(radians(alpha - beta))\n",
    "    object_points_cal = np.linalg.inv(rmat) @ (zc * np.linalg.inv(intrinsic) @\n",
    "                                                     img_points_after_cal[i, :].reshape((-1, 1)) - tvec)\n",
    "    object_points_cal[2, 0] -= delta_h\n",
    "    loss.append(np.abs(object_points_cal - object_points_after[i, :].reshape((-1, 1))))\n",
    "loss = np.squeeze(np.array(loss))\n",
    "plt.figure()\n",
    "for i in range(loss.shape[1]):\n",
    "    plt.plot(loss[:, i])\n",
    "plt.legend(['x', 'y', 'z'])\n",
    "plt.xlabel('No.number')\n",
    "plt.ylabel('Rebuild loss(mm)')\n",
    "plt.grid(True)\n",
    "plt.show()"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 95,
   "outputs": [],
   "source": [],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}